單目操作符

目錄

! --- 邏輯反操作

& --- 取地址操作符

* --- 間接訪問操作符(解引用操作符)

sizeof --- 操作數的類型長度(單位為字節)

~ --- 對一個數的補碼二進制按位取反

前置++和前置--

后置++和后置--

(類型) --- 強制類型轉換


! --- 邏輯反操作

把假變為真,把真變為假

代碼演示:

#include<stdio.h>
int main()
{int flag = 0;if (flag)printf("execute flag\n");//邏輯反操作if (!flag)printf("execute !flag\n");return 0;
}

在C語言中,0為假,一切非0為真,所以將flag單獨放在if判斷語句內,是不會進入if語句中的,但是當前面加一個邏輯反操作,就會將假變為真,則會執行第二條if語句中的內容

代碼驗證:


& --- 取地址操作符

* --- 間接訪問操作符(解引用操作符)

區分與按位與操作符,按位與操作符屬于雙目操作符

代碼演示:

#include<stdio.h>
int main()
{int a = 10;printf("a原來的值 = %d\n", a);//取地址操作符取出a的地址,用同類型的指針變量接收int* pa = &a;//解引用操作符,將pa解引用,//通過pa存放的地址,找到指向的空間內容,并賦值為20//也就是將變量a的值重新賦值為20*pa = 20;printf("a通過指針變量改變的值 = %d\n", a);return 0;
}

代碼驗證:


sizeof --- 操作數的類型長度(單位為字節)

sizeof不是函數,是操作符

sizeof計算的是類型創建變量的大小,單位是字節

代碼演示:

#include<stdio.h>
int main()
{int a = 10;printf("%d\n", sizeof(int));printf("%d\n", sizeof(a));printf("%d\n", sizeof a );return 0;
}

代碼驗證:

由最后一條代碼可證明sizeof不是函數,因為可以把括號去掉,同樣計算出a所占空間的字節,但函數不能去掉括號

sizeof和數組名的相關知識請見:對于數組名的理解-CSDN博客


~ --- 對一個數的補碼二進制按位取反

代碼演示:

#include<stdio.h>
int main()
{int a = 0;int b = ~a;printf("b = %d", b);return 0;
}

那么b的值為多少呢?

代碼解析:

整數0存儲在int類型變量a中的補碼:

變量a按位取反后的補碼:

存儲至變量b中的原碼:

由此可得b的值為-1

代碼驗證:


前置++和前置--

先++(或--),再使用

代碼演示:

#include<stdio.h>
int main()
{int a = 1;int b = ++a;printf("a = %d; b = %d\n", a, b);return 0;
}

變量a先自增1,變為2,再賦值給變量b,所以打印出來a為2,b為2

代碼驗證:

前置--同理


后置++和后置--

先使用,后++(或--)

代碼演示:

#include<stdio.h>
int main()
{int a = 1;int b = a++;printf("a = %d; b = %d\n", a, b);return 0;
}

先將a原來的值賦值給b,b就為1,賦值后a自增1,a就為2

代碼驗證:

后置--同理?


(類型) --- 強制類型轉換

#include<stdio.h>
int main()
{int a = (int)3.14;printf("a = %d\n", a);//a = 3return 0;
}

將3.14這個小數強制類型轉換為int類型,并且存儲到變量a中,那么a的值就為3,直接舍去小數

常規用法:

?一般用于動態開辟內存時才強制類型轉換為相對應的類型

#include<stdio.h>
#include<stdlib.h>int main()
{//開辟20個字節的動態空間int* ptr = (int*)malloc(sizeof(int) * 5);return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37242.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37242.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37242.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

three.js場景三元素

three.js是一個基于WebGL的輕量級、易于使用的3D庫。它極大地簡化了WebGL的復雜細節&#xff0c;降低了學習成本&#xff0c;同時提高了性能。 three.js的三大核心元素&#xff1a; 場景&#xff08;Scene&#xff09; 場景是一個三維空間&#xff0c;是所有物品的容器。可以將…

安卓速度下載v1.0.5/聚合短視頻解析下載

功能特色 短視頻下載與高級管理 – 支持短視頻下載&#xff0c;為您提供一系列高級視頻管理功能包括視頻內容提取、智能防重復技術、視頻體積壓縮以及視頻轉換成GIF圖片等&#xff1b; 磁-力鏈接下載升級 – 現支持磁力鏈接下載&#xff0c;實現邊下載邊播放的便捷體驗&#x…

構建基于LLMs混合型大模型的先進事實性問答系統架構

1.引言 傳統搜索系統基于關鍵字匹配&#xff0c;缺少對用戶問題理解和答案二次處理能力。本文探索使用大語言模型&#xff08;Large Language Model, LLM&#xff09;&#xff0c;通過其對自然語言理解&#xff08;Natural Language Understanding&#xff0c;NLU&#xff09;…

阿里云常用的操作

阿里云常見的產品和服務 容器服務 可以查看容器日志、監控容器cpu和內存&#xff0c; 日志服務 SLS 可以查看所有服務的日志&#xff0c; Web應用防火墻 WAF 可以查看 QPS. 阿里云查看集群&#xff1a; 點擊 “產品和服務” 中的 容器服務&#xff0c;可以查看 集群列表&…

linux server下人臉檢測與識別服務程序的系統架構設計

一、緒論 1.1 定義 1.2 研究背景及意義 1.3 相關技術綜述 二、人臉檢測與識別技術概述 2.1 人臉檢測原理與算法 2.2 人臉識別技術及方法 2.3 人臉識別過程簡介 三、人臉檢測與識別服務程序的系統架構 3.1 系統架構設計 3.2 技術實現流程 四、后續設計及經驗瞎談 4.…

解釋Java中的抽象類、接口、重載和重寫等核心概念

Java中的抽象類、接口、重載和重寫等核心概念詳解 在Java編程中&#xff0c;抽象類、接口、重載和重寫是面向對象編程的四個核心概念。這些概念不僅構成了Java編程語言的基礎&#xff0c;也是面試官在面試過程中經常考察的要點。下面&#xff0c;我將從技術難點、面試官關注點…

字符串

對應練習題&#xff1a;力扣平臺 14. 最長公共前綴 class Solution { public:string longestCommonPrefix(vector<string>& strs) {string strs1strs[0];//初始前綴字符串for (int i 1; i < strs.size(); i) {while(strs[i].find(strs1)!0)//遍歷找到共同最長前…

第五節:如何使用其他注解方式從IOC中獲取bean(自學Spring boot 3.x的第一天)

大家好&#xff0c;我是網創有方&#xff0c;上節我們實踐了通過Bean方式聲明Bean配置。咱們這節通過Component和ComponentScan方式實現一個同樣功能。這節實現的效果是從IOC中加載Bean對象&#xff0c;并且將Bean的屬性打印到控制臺。 第一步&#xff1a;創建pojo實體類studen…

Android進階之路 - DialogFragment有沒有了解的必要?

幾個月前寫到了彈框業務&#xff0c;以前經常用Dialog、ButtomDialog 、popupWindow 組件&#xff0c;為了契合項目結構參考了原有的 DialogFragment 組件&#xff0c;特此予以記錄 我一般在項目中寫彈框組件的話&#xff0c;主要用到 alertDialog、popupWindow 組件&#xff0…

面試經驗分享 | 滲透測試工程師(實習崗)

所面試的公司&#xff1a;某安全廠商 所在城市&#xff1a;南京 面試職位&#xff1a;滲透測試工程師實習崗位 面試過程&#xff1a; 騰訊會議&#xff08;視頻&#xff09; 面試過程&#xff1a;整體流程就是自我介紹加上一些問題問題balabalabala。。。由于面的崗位是滲透…

用GPT-4糾錯GPT-4 OpenAI推出CriticGPT模型

根據OpenAI周四&#xff08;6月27日&#xff09;發布的新聞稿&#xff0c;該公司新推出了一個基于GPT-4的模型——CriticGPT&#xff0c;用于捕獲ChatGPT代碼輸出中的錯誤。CriticGPT的作用相當于讓人們用GPT-4來查找GPT-4的錯誤。該模型可以對ChatGPT響應結果做出批評評論&…

有沒有能用藍牙的游泳耳機,性能超凡的4大游泳耳機力薦

在現代科技的推動下&#xff0c;越來越多具備藍牙功能的游泳耳機正在改變游泳愛好者的體驗方式。這些創新產品不僅在防水性能上有了顯著提升&#xff0c;還能讓您在水中享受到高質量的音樂。然而&#xff0c;選擇一款優秀的藍牙游泳耳機并不簡單&#xff0c;需要考慮到防水等級…

【秋招突圍】2024屆秋招筆試-科大筆試題-01-三語言題解(Java/Cpp/Python)

&#x1f36d; 大家好這里是清隆學長 &#xff0c;一枚熱愛算法的程序員 ? 本系計劃跟新各公司春秋招的筆試題 &#x1f4bb; ACM銀牌&#x1f948;| 多次AK大廠筆試 &#xff5c; 編程一對一輔導 &#x1f44f; 感謝大家的訂閱? 和 喜歡&#x1f497; 文章目錄 &#x1f4d6…

基于SSM的大學生家教管理系統【附源碼+LW】

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本大學生家教平臺就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間內處理完畢龐大的數據信息&a…

c語言--指針

前言 歡迎來到我的博客 個人主頁:北嶺敲鍵盤的荒漠貓-CSDN博客 本文整理c語言中指針的相關知識點。 指針概念 指針存儲的就是數據的地址。 直觀理解: 李華家是北洋路130號1單元101 用變量處理數據: 我們去李華家拿數據。 用指針處理數據: 我們去北洋路130號1單元101拿數據…

Paragon NTFS與Tuxera NTFS有何區別 Mac NTFS 磁盤讀寫工具選哪個好

macOS系統雖然以穩定、安全系數高等優點著稱&#xff0c;但因其封閉性&#xff0c;不能對NTFS格式磁盤寫入數據常被人們詬病。優質的解決方案是使用磁盤管理軟件Paragon NTFS for Mac&#xff08;點擊獲取激活碼&#xff09;和Tuxera NTFS&#xff08;點擊獲取激活碼&#xff0…

2024年科技型中小企業申報指南

01 什么是科技型中小企業 科技型中小企業是指依托一定數量的科技人員從事科學技術研究開發活動&#xff0c;取得自主知識產權并將其轉化為高新技術產品或服務&#xff0c;從而實現可持續發展的中小企。 02 申請“科技型中小企業”的好處 一、政策扶持與優惠 1.稅收減免&…

Vue2組件傳值(通信)的方式

1.父傳后代 ( 后代拿到了父的數據 ) 1. 父組件引入子組件&#xff0c;綁定數據 <List :str1‘str1’></List> 子組件通過props來接收props:{str1:{type:String,default:}}***這種方式父傳子很方便&#xff0c;但是父傳給孫子輩分的組件就很麻煩&#xff08;父》子…

《GPT模型揭秘:數據驅動AI的核心概念與GPT系列對比分析》

DS&#xff1a;《What Are the Data-Centric AI Concepts behind GPT Models?通過三個數據為中心的人工智能目標(訓練數據開發、推理數據開發和數據維護)揭示GPT模型背后的數據為中心的人工智能概念》解讀—GPT-1/GPT-2/GPT-3系列對比(語料大小參數量解碼層數上下文長度隱藏層…

技術學習的奧秘與樂趣

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 在當今快速發展的科技時代&#xff0c;學習技術已經成為了許多人追求的重要目標之一。無論是為了個人發展&#…