指针与const
2013-04-18 22:13
190 查看
#include <stdio.h> #include <string.h> typedef struct node { int next; int data; }*Node; void modify(Node l) { printf("l = %d, &l = %u\n",l,&l); l->data = 1; l->next = 1; (*l).data = 10; (*l).next = 100; } Node MM(Node l) { l = new node; l->data = 2; l->next = 2; return l; } void M(Node *l) //二维指针 { (*l) = new node; (*l)->data = 12; (*l)->next = 12; } void fun1(char *pa) //相当于传值 { //相当与char *tmp = pa; printf("&pa = %u pa %d pa = %s\n", &pa, pa,pa); pa = "ni,mei"; //只是更改了tmp的值 printf("%u %d %s\n", &pa, pa,pa); } void fun2(char **pa) //传递pa的地址 { *pa = "nimie"; //指向pa char *指针 } void int1(int *p) { *p = 100; } int main( ) { //下面这个等价 const char *p; char const *q; // "hello" 为字符串常量 const char [5] char *c1 = "hello"; char *tt; tt = c1; // tt为char *指针 // *tt 为char 指向内存单位为tt的第一个字符 tt = "wawa"; char *const l = tt; //对与这种只能在初始化时赋值 const char * const m = "haha"; //指向const对象的const指针 char c2[20] = "world"; char c3[15]; // 不能这样赋值, c3 = "haha", p = c1; q = c2; printf("%s\n%s\n%s\n%s\n",p,q,m,l); int st = 10; int *pp = &st; printf("int %u %d\n",pp, *pp); char *pa = "now"; printf("&pa = %u pa = %d %s\n",&pa, pa, pa); printf("函数1:\n"); printf("修改之前:%s\n",pa); fun1(pa); //这里相当于值传递 printf("修改之后:%s\n", pa); printf("函数2:\n"); printf("修改之前:%s\n",pa); fun2(&pa); printf("修改之后:%s\n", pa); Node ps = new node; printf("ps = %d, &ps = %d\n",ps,&ps); /* ps 只是一个指向Node的指针,没有申请内存 ps->data = 2; ps->next = 2; */ printf("%d %d\n",ps->data,ps->next); modify(ps); printf("%d %d\n",ps->data,ps->next); Node pq; //printf("%d %d\n",ps->data,ps->next); pq = MM(pq); printf("%d %d\n",pq->data,pq->next); //需要用二维指针 Node pl; M(&pl); printf("%d %d\n",pl->data,pl->next); int *ll = &st; printf("ll = %d\n",*ll); int1(ll); printf("ll = %d\n",*ll); return 0; }
相关文章推荐
- C指针与const的那些事
- const 指针与指向const的指针
- Code::blocks C++宏,const,指针
- 浅析指针与const
- const 指针与指向const的指针
- const和指针
- 【c/c++笔试题一】const变量通过指针修改问题
- 不能将this指针从“const type" 转换为"type &"
- C经典 const与指针解析
- const修饰的双重指针赋值解惑
- const修饰指针和引用的用法
- C语言之const常量(摘自C和指针)
- const与指针结合的三种情况
- c++ const指针和指向const对象的指针
- 20140421 常量指针与指针常量; const指针; reinterpret_cast ;const_cast作用
- 【一天一篇CPP】对象与指针与数组 对象和const和指针和引用
- const”类型的指针“
- C++ Primer Plus学习笔记之const修饰指针
- C--我对指针和引用const之后的理解
- 常量指针(const*)和指针常量(*const)