r*****8 发帖数: 2560 | 1 C 语言,初学者问题(4),读取指针内容
char char_array[ ] = “banana”;
char * char_pointer = &char_array;
指针的第二位是“a”,ASCII码97,十六进制码67(0x67),
怎么能把指针第二位的内容读出来?
char_array[1] 就可以读出来97:
printf("the char_array[1] is : %i", char_array[1]);
如果是指针,有类似的方法吗?把第二位的内容读出来。 |
e***i 发帖数: 231 | |
r*****8 发帖数: 2560 | 3 十分感谢!
果然好用。
【在 e***i 的大作中提到】 : *(char_pointer+1)
|
f****4 发帖数: 1359 | 4 char char_array[ ] = "banana";
char *p = char_array;
cout<<*p<
cout<<*(p+1)<
you need a C book
【在 r*****8 的大作中提到】 : C 语言,初学者问题(4),读取指针内容 : char char_array[ ] = “banana”; : char * char_pointer = &char_array; : 指针的第二位是“a”,ASCII码97,十六进制码67(0x67), : 怎么能把指针第二位的内容读出来? : char_array[1] 就可以读出来97: : printf("the char_array[1] is : %i", char_array[1]); : 如果是指针,有类似的方法吗?把第二位的内容读出来。
|
S*A 发帖数: 7142 | 5 char_array[1]
char_pointer[1]
还有
*(char_array + 1)
*(char_pointer+1)
都可以用。
array 在 expression 里面会自动 degenerate 成 pointer
这个对后端的编译器是一样的。
【在 r*****8 的大作中提到】 : C 语言,初学者问题(4),读取指针内容 : char char_array[ ] = “banana”; : char * char_pointer = &char_array; : 指针的第二位是“a”,ASCII码97,十六进制码67(0x67), : 怎么能把指针第二位的内容读出来? : char_array[1] 就可以读出来97: : printf("the char_array[1] is : %i", char_array[1]); : 如果是指针,有类似的方法吗?把第二位的内容读出来。
|
h**6 发帖数: 4160 | 6 第二行代码不用加地址符:
char * char_pointer = char_array; |
r*****8 发帖数: 2560 | 7 不加地址符只是个省略是吗?
char * char_pointer = char_array;
char * char_pointer = &char_array;
这两句结果应该是一样的对吗?
【在 h**6 的大作中提到】 : 第二行代码不用加地址符: : char * char_pointer = char_array;
|
r*****8 发帖数: 2560 | 8 “you need a C book”
以前看过,没有实际使用。
现在要用,以为是一个简短的小程序,没想到越搞越复杂。
写了10页左右,推翻重来2次了。第三次应该没问题了。
谢谢!
【在 f****4 的大作中提到】 : char char_array[ ] = "banana"; : char *p = char_array; : cout<<*p<: cout<<*(p+1)<: you need a C book
|
h**6 发帖数: 4160 | 9 不加地址符是标准写法,加了是冗余。如你的程序数组存放于栈地址时,加不加地址符
的结果是一样的。
【在 r*****8 的大作中提到】 : 不加地址符只是个省略是吗? : char * char_pointer = char_array; : char * char_pointer = &char_array; : 这两句结果应该是一样的对吗?
|
r*****8 发帖数: 2560 | 10 谢谢指正。
【在 h**6 的大作中提到】 : 不加地址符是标准写法,加了是冗余。如你的程序数组存放于栈地址时,加不加地址符 : 的结果是一样的。
|
r*****8 发帖数: 2560 | 11 谢谢指点。
【在 h**6 的大作中提到】 : 不加地址符是标准写法,加了是冗余。如你的程序数组存放于栈地址时,加不加地址符 : 的结果是一样的。
|