易截截图软件、单文件、免安装、纯绿色、仅160KB

关于 指针 C的精髓

要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍
一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一
个类型里会出现很多运算符,他们也像普通的表达式一样,有优先
级,其优先级和运算优先级一样,所以我总结了一下其原则:
从变量名处起,根据运算符优先级结合,一步一步分析.
下面让我们先从简单的类型开始慢慢分析吧:
int p;   //这是一个普通的整型变量
int *p;  //首先从P处开始,先与*结合,所以说明P是一
     //个指针,然后再与int结合,说明指针所指向
     //的内容的类型为int型.所以P是一个返回整
     //型数据的指针
int p[3];  //首先从P处开始,先与[]结合,说明P是一个数
     //组,然后与int结合,说明数组里的元素是整
     //型的,所以P是一个由整型数据组成的数组
int *p[3]; //首先从P处开始,先与[]结合,因为其优先级
     //比*高,所以P是一个数组,然后再与*结合,说明
     //数组里的元素是指针类型,然后再与int结合,
     //说明指针所指向的内容的类型是整型的,所以
     //P是一个由返回整型数据的指针所组成的数组
int (*p)[3]; //首先从P处开始,先与*结合,说明P是一个指针
     //然后再与[]结合(与"()"这步可以忽略,只是为
     //了改变优先级),说明指针所指向的内容是一个
     //数组,然后再与int结合,说明数组里的元素是
     //整型的.所以P是一个指向由整型数据组成的数
     //组的指针
int **p;  //首先从P开始,先与*结合,说是P是一个指针,然
     //后再与*结合,说明指针所指向的元素是指针,然
     //后再与int结合,说明该指针所指向的元素是整
     //型数据.由于二级指针以及更高级的指针极少用
     //在复杂的类型中,所以后面更复杂的类型我们就
     //不考虑多级指针了,最多只考虑一级指针.


相关文档:

c/c++强制类型转换

 Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?
A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型: ......

弄了半夜就没想明白,掉进C陷阱了,555

 
//输入一个数组,再修改这个数组所有元素,如何实现?
int main()
{
 vector<int> a;
 int i(0);
 while(cin>>i)
  a.push_back(i);
 //////////////////////////////////////////////////////输出建立的数组:
 cout << "得到的数组为:" << ......

生产者 消费者问题实现 (linux下C语言)

操作系统的一个经典问题是"生产者-消费者"问题, 这涉及同步信号量和互斥信号量的应用, 在这里,我用线程的同步和互斥来实现.
/*
* author 张文
* 2008/06/20
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h> ......

c 数组问题

 
char a[10];
怎么给这个数组赋值呢?
1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
char a[10]; strcpy(a, "hello");
易错情况:
1、char a[1 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号