c编程必知
来源:互联网 发布:床上用品多久清洗 知乎 编辑:程序博客网 时间:2024/04/29 05:44
测试环境:ubuntu 12.1 编译器vim
1、char[] 和 char*
int main(){
char * str = "asdfghjk";
char s[5] = {'a', 's', 'd', 'f', 'g'};
printf("%c\n",*str);
printf("%s\n", str);
printf("%p\n“, str);
printf("%p\n", &str);
printf("%p\n“, s);
printf("%p\n", &s);
for (int i = 0; i < 8 ; i++){
printf ("%c", *("asdfghjk"+j));
}
return 0;
}
输出:
a
asdfghjk
0x8048640
0xbf86ab5c
0xbf86ab67
0xbf86ab67
a s d f g h j k
说明:
1、char × str 定义的是一个字符类型的指针,所以对str进行解引用得到的是 a ,而不是asdfghjk字符串;如果是以模式%s输出的话,将出现警告,甚至导致segment问题
2、str 表示的是当前字符串的首地址,对其进行%s输出,str将得到完整的字符串,它表示的是该字符串,能进行下标操作,但是超出范围容易导致段异常
3、str 表示的是当前字符串的首地址,对其进行%p输出,str将得到该字符串首地址
4、str 表示的是当前字符串的首地址,对其进行%p输出,&str将得到该指针的存储地址
5、s【5】表示的是一个字符数组,而s是该数组的名称,s其值刚好等于该数组的首地址,而非真正表示该数组的首地址
6、s【5】表示的是一个字符数组,而s是该数组的名称,&s是权威用法,但是就其简单,才一般用5所示s取其下标操作,是一个真正的地址类型
7、“asdfghjk"表示的是该字符串的名称,能进行下标操作,越界容易导致段异常问题,也可以写成"asdfghjk”【..】形式
- c编程必知
- [IOS]编程必知
- 【ios】编程必知
- [IOS]编程必知-二
- [IOS]编程必知-三
- [IOS]编程必知-四
- IOS 编程基础知识 [IOS]编程必知
- IOS 编程基础知识 [IOS]编程必知
- 提高编程效率必知 CODEBLOCKS
- C++进阶必知
- 掌握C语言的必知要点
- 编程菜鸟必知的几个编程好习惯
- perl编程必会
- Socket编程必学
- c/c++必学
- C语言必看!
- WIN32编程必知:__stdcall,__cdecl,__fastcall,thiscall,naked call
- WIN32编程必知:__stdcall,__cdecl,__fastcall,thiscall,naked call
- 视图之间的数据传递 ios
- 类型转换
- 软件工程——软件计划
- pattern 学习记录
- windows重置mysql 中root@localhost的密码
- c编程必知
- 3e1c
- new与malloc
- make: *** [depend] 错误 2
- sencha touch笔记(5)——DataView组件(1)
- jquery之each循环遍历的方法---split 分割字符串返回数组
- SAP维护工厂日历
- 机房收费系统———验收总结
- c++中的类继承以及类初始化顺序