实例化代码
来源:互联网 发布:网络协议是指 编辑:程序博客网 时间:2024/06/06 15:46
- /*
- 虽然学过的C语言但是还是有些东西没遇到过
- 带你见识下不知道的东西:
- */
- #include <stdio.h>
- #define NUMBER 5
- /*
- define: 宏定义
- 后面的变量名用大写
- 编译时进行字符串自动替换也就是将文件内的NUMBER替换为5
- typedef 为现有的数据类型起个别名
- 如typedef int int_wy--->那么int_wy就是代表的int类型
- */
- int array[NUMBER];
- int main()
- {
- int i=9;
- //1
- //puts一般用于显示不需要格式化输出的时候
- puts("用过吗?");//"用过吗?"+i-->这样再试试
- puts("用过吗?"
- "这么会吗?");
- //2
- printf("他可发出响声:\a\a\a \n");
- //3
- putchar('\n');
- //4
- extern int array[];/*这个实际是没用的因为在之前已经声明了array数组了
- 这里不是定义array数组 extern 表示试用某处创建的数组*/
- //5
- /*
- static 定义的对象是静态存储期,在main执行之前的准备阶段就被创建出来的,
- 程序结束的时候才会消失
- */
- //6字符串
- /*
- 字符串在C++里面是直接用string就行的,c中用字符数组的形式表示的
- */
- char str[]="wangyang";
- printf("%s\n",str);
- char *p;
- /*
- 这里明明是写的指针但是p在下面我没有直接用*p的形式但是这样完全可以
- 这里涉及到内存中的存储问题:
- 我粗略的说一下:
- 数组的存储应该是这样的,数组在栈中存储的是地址值
- 而不是真正的数据值,数据值存在内存中的堆中,我把str赋值给p那么p中的值
- 就是str[0]的地址值,访问时为什么这样就行呢?
- p[1]相当于在str[0]的地址值基础上加了1(这里的是char类型所以应该是1)
- 加了1之后的地址就是str[1]的地址也就是p[1]就可以访问str[1]的数据
- 注:
- 在这里str的地址值就是指向了堆中的数据值,所以通过地址值即可获得他的值
- */
- p=str;
- printf("%c\n",p[1]);
- //7
- //注意下面这个问题
- //*p=&str;
- //cannot convert from 'char (*)[9]' to 'char'
- p=&str[0];//&运算符得到str的地址,p的值是地址,*p则是他的值
- printf("%c\n",p[1]);
- printf("%s\n",p);//输出整个字符串的值
- char *q=&str[0];//p=str;这两句效果是一样的
- /*
- 这里注意一下啊:(与上面的错误进行对照)
- *在这里的意义并不是代表指针对象本身,而是他的存在就表示这个变量是一个指针
- 有点像变量类型那个意思,这里q的数据类型应该是char *
- */
- printf("%c\n",q[1]);
- printf("%c\n",*(q+3));//取出来的值应该是g-->str[3]-->q[3]
- //8整数
- int *m,a=10;
- m=&a;
- printf("%d\n",*m);
- *m=100;
- printf("%d\n",*m);
- return 0;
- }
- 打开你的编译器include目录中的ostream.h文件,你就回看到类似的如下代码:
- ... ...
- ... endl(ostream& os) { os << '\n' << flush; }
- ... ...
- 也就是说,endl比'\n'要多了一个“刷新”流里的缓冲的flush操作。
- 以文件输出流(ofstream)为例:当流的缓冲区未满时,写入'\n'的是不会马上写到文件里的,但执行endl会“强行”把缓冲区的内容写入文件中。所以,endl不仅换行,还刷新流缓冲。
- iostream在这里耍了个小技巧,重载<<操作符"<<((ostream& *f)(ostream&))",使得当你执行"<< endl"时,其实调用了endl()函数。
0 0
- 实例化代码
- 实例代码
- 代码实例
- 代码实例
- java实例化代码------------------监听事件
- UIlabel代码实例化 和属性
- java实例化代码------------------监听事件
- AudioTrack实例代码 C++代码
- AudioTrack实例代码 C++代码
- JSP分页代码实例
- Struts + Hibernate 代码实例
- struts分页实例代码
- javascript经典代码实例
- 代码生成器的实例
- 代码实例:级联菜单
- JAVA分页代码实例
- JSP分页代码实例
- Struts2 入门实例代码
- Git概念:什么是分支
- cocos2dx读写json文件
- 比较全面的gdb调试命令
- iOS SDK中使用NSXMLParser解析XML
- php 解决json输出中文为null
- 实例化代码
- 什么是卷积 卷积有什么用 什么是傅利叶变换 什么是拉普拉斯变换
- 【工具使用】git 的使用
- C++ 溢出与越界
- Monitor the changes in EOImpl.java side
- nodejs开发指南阅读记录
- windows系统中python2,python3共存的设置方法
- linux下NIS搭建
- 礼拜三log~常用java函数 & jQuery ajax的serialize() 方法 & 获取参数 & IE浏览器下button显示黑边框问题 & 关于ajax