数组指针辨析
2016-01-12 19:46
274 查看
学c学的好不好,做完这些题你就知道了。
1.
char str[4] = {'0', '1', '2', '3'};
printf("str: %s\n", str);
char str1[5] = {'0', '1', '2', '3'};
printf("str1: %s\n", str1);
char str2[4] = "calc";
printf("str2: %s\n", str2);
char str3[5] = "calc";
printf("str3: %s\n", str3);
2.
char str[4] = {'0', '1', '2', '3'};
printf("str: %d\n", sizeof(str));
char *p_str = str;
printf("p_str: %d\n", sizeof(p_str));
char str1[5] = {'0', '1', '2', '3'};
printf("str1: %d\n", sizeof(str1));
char *p_str1 = str1;
printf("p_str1: %d\n", sizeof(p_str1));
char str2[4] = "calc";
printf("str2: %d\n", sizeof(str2));
char *p_str2 = str2;
printf("p_str2: %d\n", sizeof(p_str2));
char str3[5] = "calc";
printf("str3: %d\n", sizeof(str3));
char *p_str3 = str3;
printf("p_str3: %d\n", sizeof(p_str3));
char str4 = '1001';
printf("str4: %d\n", sizeof(str4));
printf("str4: %d\n", sizeof('1001'));
3.
int num[5] = {0, 1, 2, 3, 4};
printf("num: %d\n", sizeof(num));
int *n = num;
printf("n: %d\n", sizeof(n));
int num1[] = {0, 1, 2, 3, 4};
printf("num1: %d\n", sizeof(num1));
4.
printf("%c, %d\n", '\0', '\0');
printf("%c, %d\n", 0, 0);
printf("%c, %d\n", '0', '0');
5.
int a[10] = {2, 4, 3, 4, 5, 6, 7, 8, 9, 10};
printf("%d\n", &a[9]-&a[3]);
printf("%d\n", *(&a[3]+2));
6.
#include <stdio.h>
void go(int a[10])
{
printf("子函数a: %d", sizeof(a));
}
int main()
{
int a[10];
printf("主函数a: %d", sizeof(a));
go(a);
getchar();
return 0;
}
答案见下篇:
1.
char str[4] = {'0', '1', '2', '3'};
printf("str: %s\n", str);
char str1[5] = {'0', '1', '2', '3'};
printf("str1: %s\n", str1);
char str2[4] = "calc";
printf("str2: %s\n", str2);
char str3[5] = "calc";
printf("str3: %s\n", str3);
2.
char str[4] = {'0', '1', '2', '3'};
printf("str: %d\n", sizeof(str));
char *p_str = str;
printf("p_str: %d\n", sizeof(p_str));
char str1[5] = {'0', '1', '2', '3'};
printf("str1: %d\n", sizeof(str1));
char *p_str1 = str1;
printf("p_str1: %d\n", sizeof(p_str1));
char str2[4] = "calc";
printf("str2: %d\n", sizeof(str2));
char *p_str2 = str2;
printf("p_str2: %d\n", sizeof(p_str2));
char str3[5] = "calc";
printf("str3: %d\n", sizeof(str3));
char *p_str3 = str3;
printf("p_str3: %d\n", sizeof(p_str3));
char str4 = '1001';
printf("str4: %d\n", sizeof(str4));
printf("str4: %d\n", sizeof('1001'));
3.
int num[5] = {0, 1, 2, 3, 4};
printf("num: %d\n", sizeof(num));
int *n = num;
printf("n: %d\n", sizeof(n));
int num1[] = {0, 1, 2, 3, 4};
printf("num1: %d\n", sizeof(num1));
4.
printf("%c, %d\n", '\0', '\0');
printf("%c, %d\n", 0, 0);
printf("%c, %d\n", '0', '0');
5.
int a[10] = {2, 4, 3, 4, 5, 6, 7, 8, 9, 10};
printf("%d\n", &a[9]-&a[3]);
printf("%d\n", *(&a[3]+2));
6.
#include <stdio.h>
void go(int a[10])
{
printf("子函数a: %d", sizeof(a));
}
int main()
{
int a[10];
printf("主函数a: %d", sizeof(a));
go(a);
getchar();
return 0;
}
答案见下篇:
相关文章推荐
- c++ 使用socket实现C/S端文件的下载传输
- 一段SQL
- easyui异步
- 代码中padding的单位
- 算法学习【1】三个空汽水瓶可以换一瓶汽水
- 用caffe训练人工神经网络
- SSH Secure Shell Client 连接Linux 乱码
- 分布式消息系统Jafka入门指南之二
- Redis 性能測试
- 2015年乐学琴产品总结
- Quartz2.2.2的简单使用
- C++ socket编程 实现服务端与客户端的通讯
- POJ2125 Destroying The Graph(二分图最小点权覆盖集)
- 运算符重载
- string类--复制《copy()与copyTo()》
- List 操作容易出现的bug
- 旋转坐标的计算
- python网络编程(基于twisted的客户端编程)
- MySQL数据库常用的cmd命令集汇总
- mysql 源码编译安装报错-curses_library