在看C语言,有一个代码理解不了。帮忙讲解一下有吗? 只学过C语言,这有几句代码不知道是C++还是JAVA,求帮忙...

\u6211\u4eec\u6ca1\u6709\u6559\u8fc7C\u8bed\u8a00\uff0c\u4f46\u662f\u8fd9\u8bfe\u7a0b\u6d89\u53ca\u5230C\u8bed\u8a00\u7684\u77e5\u8bc6\uff0c\u73b0\u5728\u6211\u770b\u4e0d\u61c2\u8fd9\u4e9b\u4ee3\u7801\uff0c\u6709\u54ea\u4f4d\u524d\u8f88\u5e2e\u52a9\u6211\u89e3\u91ca\u4e00\u4e0b\uff1f

int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, ..., char * const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execve(const char *path, char *const argv[], char *const envp[]);
\u5bf9\u7740\u8fd9\u4e2a\u770b\u5c31\u660e\u767d\u4e86 \u8fd9\u4e2aexec\u51fd\u6570\u7c07
\u56fe\u7247\u4e0a\u7b2c\u4e00\u6392\u662f\u51fd\u6570\u58f0\u660e \u7b2c\u4e8c\u6392\u662f\u51fd\u6570\u662f\u53d8\u91cf\u7684\u7c7b\u578b
...\u8868\u793aarg1\u5230argn \u4efb\u610f\u4e2a\u6570 \u5b83\u7684\u7c7b\u578b\u5e94\u8be5\u662f\u7531arg\u91cc\u7684\u503c\u4e3a\u51b3\u5b9a\u7684

for(int element:arr) \u662fjava\u7684\u5199\u6cd5\u3002


int arr[]={1,2,3};\u3000//\u5b9a\u4e49\u4e00\u4e2aarr\u7684\u6574\u5f62\u6570\u7ec4\uff0c\u5e76\u521d\u59cb\u5316\u4e3a{1,2,3}\uff0c\u5373\u67093\u4e2a\u5143\u7d20\u3002
for(int element:arr) //\u5faa\u73af\u6570\u7ec4arr\u4e2d\u7684\u6bcf\u4e00\u4e2a\u5143\u7d20
{
element=element+1;
}
\u76f8\u5f53\u4e8e
for (int i=0;i<arr.length;i++) {
int element= a[i];
element = element+1;
}

#include <stdio.h> 
// 返回在整数x中设置的位数 是二进制位数中1的个数
int count_bits(unsigned x) { int count = 0; //位数初值0
while (x) { //一直算到x没有有效位为止
if (x & 1U) count++;  //如果当前的x最低位为1,则count加1
x >>= 1; //将当前处理过的最低位移除,其他高位顺序右移一位

return (count); //将x中1的个数计数值当作返回值返回给调用者

// 返回unsigned型的位数 
int int_bits(void) //计算unsigned int是多少位二进制
{ //0值取反得到unsigned int类型数据所有位都是1的数
return (count_bits(~0U)); //调用count_bits后得到1的个数当成返回值返回

// 显示unsigned型的位串内容 
void print_bits(unsigned x) 

int i; //下面保证循环次数为int_bits统计返回值的次数
for (i = int_bits() - 1; i >= 0; i--) //由于循环条件是i>=0因此用减1,如果i>0不用减1
putchar(((x >> i) & 1U) ? '1' : '0'); 
}


下面以注释的形式为楼主解答各个问题: // 返回在整数x的二进制值中1的位数 int count_bits(unsigned x) { int count = 0; while (x) { if (x & 1U) count++; x >>= 1; } return (count); //这句反回一个数有什么用?----靠它来“返回在整数x的二进制值中1的位数” } // 返回unsigned型的位数 int int_bits(void) { return (count_bits(~0U)); //这转给函数的是什么值?----0U即32位0,~0U即32位1 } // 显示unsigned型的位串内容 void print_bits(unsigned x) -----这个函数的作用就是以二进制的形式输出x的值 { int i; for (i = int_bits() - 1; i >= 0; i--) //int_bits() - 1什么意思?----对于32位整数而言,int_bits()就是32,这个循环就是从31~0 putchar(((x >> i) & 1U) ? '1' : '0'); }

  1. 因为count_bits函数名前写了int,就要求这个函数必须返回一个int型值,否则算错。通常返回的数值是有用的,但规则并不要求这样,随便返回一个int型值都行。

  2. 把0取反并强制为无符号型,实际上就是全1了。

  3. i=int_bits() - 1——调用函数int_bits(),并将这个函数的返回值减1后赋给变量i。



  • 澶т竴鏂扮敓瀛︿範C璇█,涔︿笂浠g爜鐪涓嶆噦鐞嗚В涓嶄簡鎬庝箞鍔?
    绛旓細浣滀负澶т竴鏂扮敓锛瀛︿範C璇█鏃堕亣鍒扮湅涓嶆噦涔︿笂浠g爜鐨勬儏鍐垫槸寰堟甯哥殑銆備互涓嬫槸涓浜涘缓璁潵甯姪浣犺В鍐宠繖涓棶棰橈細1.闃呰浠g爜娉ㄩ噴锛氬湪闃呰浠g爜鏃讹紝棣栧厛瑕佹煡鐪嬩唬鐮佷腑鐨勬敞閲娿傛敞閲婇氬父浼氳В閲婁唬鐮佺殑鍔熻兘鍜屽疄鐜版柟寮忥紝杩欐湁鍔╀簬浣犵悊瑙d唬鐮佺殑缁撴瀯鍜岄昏緫銆2.閫愯鍒嗘瀽浠g爜锛氬皢浠g爜鍒嗘垚灏忓潡锛岄愯杩涜鍒嗘瀽銆傚皾璇曠悊瑙f瘡涓琛屼唬鐮...
  • 鍦ㄧ湅C璇█,鏈変竴涓唬鐮佺悊瑙d笉浜銆傚府蹇欒瑙d竴涓嬫湁鍚?
    绛旓細include <stdio.h> // 杩斿洖鍦ㄦ暣鏁皒涓缃殑浣嶆暟 鏄簩杩涘埗浣嶆暟涓1鐨勪釜鏁癷nt count_bits(unsigned x) { int count = 0; //浣嶆暟鍒濆0while (x) { //涓鐩寸畻鍒皒娌℃湁鏈夋晥浣嶄负姝f (x & 1U) count++; //濡傛灉褰撳墠鐨剎鏈浣庝綅涓1锛鍒檆ount鍔1x >>= 1; //灏嗗綋鍓嶅鐞嗚繃鐨勬渶浣庝綅绉婚櫎锛屽叾...
  • C璇█缂栫▼ 鏈夌▼搴 鐪嬩笉鎳 姹傝В閲
    绛旓細锛岃〃绀虹涓浜哄凡鎶婃墍鏈夌伅閮藉叧浜唅nt i,j,n,w;w=0;scanf("%d",&n);for(j=2;j<=n;j++) //濡傛ゼ涓婃墍璇翠粠2寮濮嬪氨濂斤紝绗琷涓汉鎿嶄綔寮鍏 {for(i=1;i<=n;i++) //杩欑鐩存帴绌蜂妇姣涓涓鏁板啀鍒ゆ柇鏄惁鍊嶆暟鐨勭畻娉曪紝
  • c璇█ 鏈変竴娈浠g爜鐪嬩笉鎳,鏄庡ぉ灏辫绛旇京浜,姹傚府鍔
    绛旓細else if(GetHour(info.starttime) == timeinfo->tm_hour) //濡傛灉灏忔椂鏄浉绛夌殑锛屽湪姣旇緝鍒嗛挓 { if(GetMinute(info.starttime)<=timeinfo->tm_min) //鍙戣溅鐨勫垎閽熷皬浜庤喘绁ㄧ殑灏忔椂锛堣繖涓繕鏄湁缂虹偣鐨勶紝涓鑸槸鍙戣溅鍓嶅嚑鍒嗛挓灏卞仠姝㈠敭绁ㄧ殑锛塸rintf("瀵逛笉璧凤紝璇ヨ溅宸茬粡鍙戝嚭锛岃阿璋娇鐢");else { printf(...
  • 涓涓闅炬噦鐨c璇█浠g爜
    绛旓細濡傛灉鏄紝灏变緷娆″皢绗琲鍒版渶鍚涓涓鍏冪礌锛屼粠鏈鍚庝竴涓紑濮嬮愪竴寰鍚庣Щ鍔ㄤ竴涓綅缃傛渶鍚庡皢鍏冪礌鎻掑叆绗琲涓厓绱犵殑浣嶇疆i-1澶勩傚鏋滀笉鏄紝鍒欑洿鎺ュ皢鍏冪礌璧嬪肩粰stu[i],涔熷氨鏄*q銆(杩欓噷鐨刬<=length,涓嶇劧浼氬嚭鐜板皬閿欒鐨勶紒)--p;浣滅敤灏辨槸灏唖tu[lengh-1]鍒皊tu[i-1]鐨勫厓绱犱緷娆″線鍚庣Щ銆傚厛鏄痩ength-1鍒發ength,鍐...
  • 寰堝C璇█寮婧愯蒋浠剁殑婧愪唬鐮寰堥毦鎳,瑕佸揩閫鐞嗚В鏈変粈涔堟妧宸у悧?
    绛旓細璁板緱鎴戠涓浠藉伐浣滄槸鍋氬崟鐗囨満浜у搧缁存姢锛屽钩鏃跺伐浣滃氨鏄湪鐜版湁鐨勪骇鍝佷笂鏀规敼鍔熻兘浠g爜锛屽鍔犳柊鍔熻兘銆傞偅涓椂鍊欐病鍋氳繃浠涔堜骇鍝侊紝铏界劧涔熶細C璇█锛浣嗘槸鐪嬪埆浜轰唬鐮佸氨鍍忕湅澶╀功涓鏍凤紝涓昏鏄妧鏈笉鍒板锛岃繕閬囧埌杩囦竴浜涜浜哄悙琛鐨勪唬鐮侊紝鍙兘鏄叕鍙稿緱缃簡閭d釜宸ョ▼甯堬紝浠g爜閲屾病涓涓娉ㄩ噴锛岃屼笖鍙橀噺鍚嶅叏鏄痥锛宬k锛宼t杩欑涓嶅ソ...
  • C璇█,鎵撳紑鏂囦欢鐨浠g爜涓湁涓鐐鐪嬩笉鎳傜殑鍦版柟~
    绛旓細while (fgets(xx[i],80,fp)!=NULL){ p=strchr(xx[i],\"\\n\");if(p)p=0;i++;} \"\\n\"=0鍢涳紝if (P) 娴嬭瘯涓涓嬫槸鍚﹁鍒扮┖琛岋紝鍚﹀垯鎶*p缃0銆傚疄闄呬笂杩欓噷p骞舵病璧峰埌浠涔堜綔鐢紝澶ф鏄负灏嗘潵鐨勫姛鑳/娴嬭瘯棰勫浣嶇疆銆
  • C璇█涓涓绋嬪簭,甯屾湜楂樻墜缁欐妸浠g爜鎬濊矾璁茶В涓涓!鏈変簺鍦版柟鐪嬩笉鎳
    绛旓細]鐨勬瘡涓涓鍏冪礌鍋0鍒濆鍖栵紝浣犺繖鏍风湅灏辫兘姣旇緝鏄庣櫧 for(h=1;h<10;h++)a[h]=0;杩欐槸鍒犻櫎for寰幆鍚庨儴鍒浠g爜鐨勭缉鍐欙紝瀹冧娇寰梐[h]鐨勬剰涔夋竻鏅拌捣鏉ワ紝鏄澶嶆潅绋嬪簭鐨勫父鐢ㄦ墜娉曚箣涓锛屽叧閿湪浜庡垹闄ゅ浣欓儴鍒嗘椂涓嶅緱鏀瑰彉鍓╀笅鐨勮鍙ョ殑鎵ц杩囩▼锛涘杩樻湁鐤戦棶璇疯ˉ鍏咃紝濡傛棤灏辩粰鎴戝垎鍚э紝鍏ㄦ墜鎵擄紝绱鎴戜簡 ...
  • C璇█,浠婂ぉ鎵嶇湅鍒颁粬涓寮濮嬪氨鐪嬩笉鎳傜籂缁撳緱寰,甯屾湜鍚勪綅澶х浠,鎶浠g爜涓涓...
    绛旓細node* next; // 涓涓涓椤圭殑鍦板潃 }Node;typedef struct list{ node* head;int size;}List;void InitializeList (List * plist); // 鍒濆鍖栭摼琛 bool ListIsEmpty (const List * plist); // 閾捐〃鏄惁涓虹┖ bool ListisFull (const List * plist); // 閾捐〃鏄惁宸叉弧 unsigned int ListItem...
  • c璇█涓涓閿欒鐞嗚В
    绛旓細浠g爜鏈夐棶棰橈紝鏃犳硶缂栬瘧锛屼綘寰楁敼浠g爜
  • 扩展阅读:编程必背100个代码 ... c语言代码生成器 ... 初学编程必背50个 ... c语言必背100代码 ... c++和python先学哪个 ... c十十编程要学多久 ... 初学编程100个代码大全 ... 吓人的编程代码 ... cnc编程必背50个程序 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网